import axios from "axios";
import api from "../api/index";

// 网络请求接口列表
// 接口1：管理员登录
// http://localhost:4000/api/user/signin
export const signin = async (data = {}) => {
    return axios.post(
        `${api.url}/api/user/signin`,
        data,
        // 在vue3项目中，axios关于post请求，注意文档类型
        {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            }
        }
    )
        .then(Response => Response.data)
}


// 接口2：验证码
// http://localhost:4000/api/verify/test
export const test = async (data = {}) => {
    return axios.get(
        `${api.url}/api/verify/test`,
        {
            params: data
        }
    )
        .then(Response => Response.data)
}


// 接口3：用户列表
// http://localhost:4000/api/user/list
export const userList = async (data = {}) => {
    return axios.get(
        `${api.url}/api/user/list`,
        {
            params: data
        }
    )
        .then(Response => Response.data)
}


// 接口4：添加考试分类
// http://localhost:4000/api/exam/category/add
export const categoryAdd = async (data = {}) => {
    return axios.post(
        `${api.url}/api/exam/category_add`,
        data,
        {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            }
        }
    )
        .then(response => response.data)
}


// 接口5：获取考试分类列表
// http://localhost:4000/api/exam/category/list
export const categoryList = async (data = {}) => {
    return axios.get(
        `${api.url}/api/exam/category_list`,
        {
            params: data
        }
    )
        .then(response => response.data)
}


// 接口6： 删除考试分类
// http://127.0.0.1:4000/api/exam/category_remove
export const categoryRemove = async (data = {}) => {
    return axios.get(
        `${api.url}/api/exam/category_remove`,
        {
            params: data
        }
    )
        .then(response => response.data)
}


// 接口7：上传图片
// http://localhost:4000/api/photo/upload
export const photoUpload = async (data = {}) => {
    return axios.post(
        `${api.url}/api/photo/upload`,
        data,
        {
            headers: {
                'Content-Type': 'multipart/form-data'
            }
        }
    )
        .then(response => response.data)
}


// 接口8：删除图片
// http://localhost:4000/api/photo/delete
export const photoDelete = async (data = {}) => {
    return axios.post(
        `${api.url}/api/photo/delete`,
        data,
        {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            }
        }
    )
        .then(response => response.data)
}


// 接口9：发布试卷
// http://localhost:4000/api/exam/exam_add
export const examAdd = async (data = {}) => {
    return axios.post(
        `${api.url}/api/exam/exam_add`,
        data,
        {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            }
        }
    )
        .then(response => response.data)
}


// 接口10：试卷列表
// http://localhost:4000/api/exam/exam_list_all
export const examList = async (data = {}) => {
    return axios.get(
        `${api.url}/api/exam/exam_list_all`,
        {
            params: data
        }
    )
        .then(response => response.data)
}


// 接口11：删除试卷
// http://localhost:4000/api/exam/exam_remove
export const examRemove = async (data = {}) => {
    return axios.get(
        `${api.url}/api/exam/exam_remove`,
        {
            params: data
        }
    )
        .then(response => response.data)
}


// 接口12：获取试卷列表（分页）
// http://localhost:4000/api/exam/exam_items
export const examItems = async (data = {}) => {
    return axios.get(
        `${api.url}/api/exam/exam_items`,
        {
            params: data
        }
    )
        .then(response => response.data)
}

// 接口：获取账号信息
// http://localhost:4000/api/user/info
export const getAccountInfo = async (data={})=> {
    return axios.post(
        `${api.url}/api/user/info`, 
         data,
         {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            }
        }
    )
    .then(response => response.data)
}


// 接口: 使用第三方API获取账号登录IP地址
export const getIpAdress = async ()=> {
    return axios.get(
        // 'https://api.ipify.org?format=json'
        // 发送请求到 ip-api.com 获取IP地址的地理位置信息
        'http://ip-api.com/json'
    )
    .then(response => response.data)
    .catch(error => {
        console.error('无法获取IP地址信息：', error);
    });
}